This invention relates to programmable logic devices, and more particularly to circuitry for improving the multiplexing capabilities of programmable logic devices.
Programmable logic devices are well known as shown, for example, by Cliff et al. U.S. Pat. No. 5,689,195, Cliff et al. U.S. Pat. No. 5,909,126, Cliff et al. U.S. Pat. No. 5,963,049, Reddy et al. U.S. Pat. No. 5,977,793, and McClintock et al. U.S. Pat. No. 5,999,016, all of which are hereby incorporated by reference herein. Such devices typically include large numbers of relatively small logic modules, each of which is programmable to perform any of several relatively elementary logic functions on input signals applied to the logic module in order to produce one or more logic module output signals. A network of programmable interconnection conductors and other interconnection resources is provided on the device for conveying signals to, from, and/or between the logic modules so that very complex logic functions can be performed by concatenating multiple logic modules in various ways.
The circuitry of known programmable logic devices performs logic very well, and it can also perform some multiplexing operations. (By "multiplexing" is meant the dynamic selection of any one of two or more multiplexer input signals to be the multiplexer output signal. In other words, at different times during operation of the device, a different one of the multiplexer input signals can be selected to be the multiplexer output signal.) However, known programmable logic devices tend not to perform multiplexing especially efficiently. For example, known logic modules which include a four-input look-up table may only be able to perform a single two-to-one multiplexing operation. Two of the inputs to the look-up table are used as the multiplexer input signals, a third input to the look-up table is used as a multiplexer selection control signal, and the fourth input to the look-up table may be wasted. Not only is this relatively inefficient use of a logic module, but in addition large numbers of logic modules must be used to perform wide fan-in multiplexing, and these modules must be connected in series (at least to some extent), which inherently slows down multiplexing functions.
In view of the foregoing, it is an object of this invention to provide programmable logic devices with improved multiplexing capabilities.
It is a more particular object of this invention to improve the speed, efficiency, and economy with which programmable logic devices can perform multiplexing operations.